package StackandQueue;

import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.Queue;

//用队列实现栈
public abstract class MyStack {
    Queue<Integer> q1 = new LinkedList<>();
    //q2仅作为临时放置
    Queue<Integer> q2 = new LinkedList<>();
    public MyStack(){

    }

    public void push(int x){
        q2.offer(x);
        while(!q1.isEmpty()){
            q2.offer(q1.poll());
        }
        Queue<Integer> temp = q1;
        q1 = q2;
        q2 = temp;
    }

    public int pop(){
        return q1.poll();
    }

    public int top(){
        return q1.peek();
    }

    public boolean empty(){
        return q1.isEmpty();
    }


}
